home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / scope / 051-075 / scopedisk58 / md / md.doc < prev    next >
Encoding:
Text File  |  1995-03-19  |  3.2 KB  |  68 lines

  1. MD--Memory Diagnostic
  2. by Fabbian G. Dufoe, III
  3. 10 January 1989
  4.  
  5.      MD is a simple memory diagnostic program.  It allocates as much memory
  6. as it can, writes a value to it, and reads the value.  If the value read is
  7. not the same as the value MD wrote MD reports an error.  It repeats the
  8. process until each byte of memory has been tested with four test values:
  9. 0x00, 0xff, 0x55, and 0xaa.  The error report identifies the address where
  10. the bad value was found, the value found, and the value expected.
  11.  
  12.      In addition to the error report MD writes status messages as it runs to
  13. keep you posted on its progress.  Status messages are sent to standard error
  14. while the error report is sent to standard output.  That allows you to
  15. direct the report to a disk file for later review and printing.  The status
  16. messages won't be included in the report, because standard error is not
  17. redirected.
  18.  
  19.      MD is designed for the CLI environment.  To run it type "MD" at a CLI
  20. or Shell prompt.  You may send the error report to a disk file or an
  21. AmigaDOS device by redirecting it.  For example, you can save the error
  22. report in MD.rpt by typing "MD >MD.rpt".  You can print the report by typing
  23. "MD >PRT:".
  24.  
  25.      MD does not take over the machine.  However, it does allocate memory
  26. until the system won't give it any more.  It starts by asking for 1 MB
  27. blocks.  When the system won't give it any more that size it cuts the
  28. requested size in half.  This process continues until the system won't give
  29. it any 1-byte blocks.
  30.  
  31.      The next phase is to sort the blocks so the report will be in ascending
  32. order by address.  MD keeps an array with the block pointer and the size of
  33. the block.  Once the array is sorted MD initializes all the blocks with
  34. zeroes (0x00).
  35.  
  36.      Then it tests each block byte by byte.  If the byte is not equal to the
  37. last value store there MD reports the error.  It then assigns the next test
  38. value before moving on to the next byte.  It repeats that process for each
  39. test value.
  40.  
  41.      When all the memory has been tested with all the test values MD frees
  42. all the blocks and terminates.
  43.  
  44.      The error report begins with a heading identifying the program, a line
  45. telling when the test was run, and a list of the blocks examined.  For each
  46. block the report shows the block number, its starting address, and its size
  47. in bytes.  Each error found is listed individually.  The reports gives the
  48. address where the error occurred, the value found at that address, and the
  49. value expected.  Finally the report states the total number of errors found.
  50.  
  51.      MD takes about 8 minutes to test a 2.5MB machine.  During that time
  52. there will not be enough memory left to run other jobs.  When MD finishes,
  53. however, it will release all the memory it used and other jobs can resume
  54. without rebooting.  MD will not interfere with other jobs that are executing
  55. when it is invoked but it is possible to create a deadlock if there are
  56. other active jobs in the system.  Besides that, MD cannot test memory that
  57. is allocated to another process.  Consequently, it is best to run MD
  58. immediately after booting the system.
  59.  
  60.      Send questions, comments, or bug reports to:
  61.  
  62. --Fabbian Dufoe
  63.   350 Ling-A-Mor Terrace South
  64.   St. Petersburg, Florida  33705
  65.   813-823-2350
  66.  
  67. UUCP: ...uunet!pdn!jc3b21!fgd3
  68.